#ifndef WEATHERTOOL_H
#define WEATHERTOOL_H

#include <QString>
#include <QMap>
#include <QFile>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
//读取citycode-2019-08-23.json文件
//获得city和citycode的相对关系
class WeatherTool
{
public:
    WeatherTool();

    // 工具类直接提供一个静态方法即可
    static QString getCityCode(QString cityName){

        if(!city2code.isEmpty()) {
            return city2code[cityName];
        }

        QFile fe(":/citycode-2019-08-23.json");
        if(fe.open(QIODevice::ReadOnly)){
            QJsonDocument doc=QJsonDocument::fromJson(fe.readAll());
            QJsonArray rootArr=doc.array();
            for(int i=0;i<rootArr.size();i++){
                QJsonObject obj=rootArr[i].toObject();
                city2code.insert(obj.value("city_name").toString(),obj.value("city_code").toString());
            }

            fe.close();

        }
        return city2code[cityName];
    };
private:
    static QMap<QString,QString> city2code;

};
QMap<QString,QString> WeatherTool::city2code{};//静态成员变量要在类外进行初始化

#endif // WEATHERTOOL_H
